{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# Concept drift\n",
    "\n",
    "In online machine learning, it is assumed that data can change over time. When building machine learning models, we assume data has a probability distribution, which is usually fixed, i.e., stationary. Changes in the data distribution give rise to the phenomenon called **Concept drift**. Such drifts can be either _virtual_ or _real_. In virtual drifts, only the distribution of the features, $P(X)$, changes, whereas the relationship between $X$ (features) and the target, $y$, remains unchanged. The joint probability of $P(X, y)$ changes in real concept drifts. Consequently, non-supervised online machine learning problems might face only virtual concept drifts.\n",
    "\n",
    "Real concept drits can be further divided in *abrupt* (happen instantly at a given point) or *gradual* (one \"concept\" changes to another gradually). There are other possible divisions, but they can be fit into abrupt or gradual drifts.\n",
    "\n",
    "\n",
    "## Examples of concept drift\n",
    "\n",
    "\n",
    "Concept drifts might happen in the electricity demand across the year, in the stock market, in buying preferences, and in the likelihood of a new movie's success, among others.\n",
    "\n",
    "Let us consider the movie example: two movies made at different epochs can have similar features such as famous actors/directors, storyline, production budget, marketing campaigns, etc., yet it is not certain that both will be similarly successful. What the target audience *considers* is worth watching (and their money worth spending) is constantly changing, and production companies must adapt accordingly to avoid \"box office flops\".\n",
    "\n",
    "Prior to the pandemic, the usage of hand sanitizers and facial masks was not widespread. When the cases of COVID-19 started increasing, there was a lack of such products for the end consumer. Imagine a batch-learning model deciding how much of each product a supermarket should stock during those times. What a mess!\n",
    "\n",
    "## Impact of drift on learning\n",
    "\n",
    "Concept drift can have a significant impact on predictive performance if not handled properly. Most batch learning models will fail in the presence of concept drift as they are essentially trained on different data. On the other hand, stream learning methods continuously update themselves and adapt to new concepts. Furthermore, drift-aware methods use change detection methods (a.k.a. drift detectors) to trigger *mitigation mechanisms* if a change in performance is detected.\n",
    "\n",
    "## Detecting concept drift\n",
    "\n",
    "Multiple drift detection methods have been proposed. The goal of a drift detector is to signal an alarm in the presence of drift. A good drift detector maximizes the number of true positives while keeping the number of false positives to a minimum. It must also be resource-wise efficient to work in the context of infinite data streams.\n",
    "\n",
    "For this example, we will generate a synthetic data stream by concatenating 3 distributions of 1000 samples each:\n",
    "\n",
    "- $dist_a$: $\\mu=0.8$, $\\sigma=0.05$\n",
    "- $dist_b$: $\\mu=0.4$, $\\sigma=0.02$\n",
    "- $dist_c$: $\\mu=0.6$, $\\sigma=0.1$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2023-12-04T17:47:15.186479Z",
     "iopub.status.busy": "2023-12-04T17:47:15.185478Z",
     "iopub.status.idle": "2023-12-04T17:47:15.510637Z",
     "shell.execute_reply": "2023-12-04T17:47:15.510311Z"
    },
    "jupyter": {
     "outputs_hidden": false
    },
    "pycharm": {
     "name": "#%%\n"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x300 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import gridspec\n",
    "\n",
    "# Generate data for 3 distributions\n",
    "random_state = np.random.RandomState(seed=42)\n",
    "dist_a = random_state.normal(0.8, 0.05, 1000)\n",
    "dist_b = random_state.normal(0.4, 0.02, 1000)\n",
    "dist_c = random_state.normal(0.6, 0.1, 1000)\n",
    "\n",
    "# Concatenate data to simulate a data stream with 2 drifts\n",
    "stream = np.concatenate((dist_a, dist_b, dist_c))\n",
    "\n",
    "# Auxiliary function to plot the data\n",
    "def plot_data(dist_a, dist_b, dist_c, drifts=None):\n",
    "    fig = plt.figure(figsize=(7,3), tight_layout=True)\n",
    "    gs = gridspec.GridSpec(1, 2, width_ratios=[3, 1])\n",
    "    ax1, ax2 = plt.subplot(gs[0]), plt.subplot(gs[1])\n",
    "    ax1.grid()\n",
    "    ax1.plot(stream, label='Stream')\n",
    "    ax2.grid(axis='y')\n",
    "    ax2.hist(dist_a, label=r'$dist_a$')\n",
    "    ax2.hist(dist_b, label=r'$dist_b$')\n",
    "    ax2.hist(dist_c, label=r'$dist_c$')\n",
    "    if drifts is not None:\n",
    "        for drift_detected in drifts:\n",
    "            ax1.axvline(drift_detected, color='red')\n",
    "    plt.show()\n",
    "\n",
    "plot_data(dist_a, dist_b, dist_c)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "### Drift detection test\n",
    "\n",
    "We will use the ADaptive WINdowing (`ADWIN`) drift detection method. Remember that the goal is to indicate that drift has occurred after samples **1000** and **2000** in the synthetic data stream."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2023-12-04T17:47:15.512509Z",
     "iopub.status.busy": "2023-12-04T17:47:15.512375Z",
     "iopub.status.idle": "2023-12-04T17:47:16.094393Z",
     "shell.execute_reply": "2023-12-04T17:47:16.093560Z"
    },
    "jupyter": {
     "outputs_hidden": false
    },
    "pycharm": {
     "name": "#%%\n"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Change detected at index 1055\n",
      "Change detected at index 2079\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x300 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from river import drift\n",
    "\n",
    "drift_detector = drift.ADWIN()\n",
    "drifts = []\n",
    "\n",
    "for i, val in enumerate(stream):\n",
    "    drift_detector.update(val)   # Data is processed one sample at a time\n",
    "    if drift_detector.drift_detected:\n",
    "        # The drift detector indicates after each sample if there is a drift in the data\n",
    "        print(f'Change detected at index {i}')\n",
    "        drifts.append(i)\n",
    "\n",
    "plot_data(dist_a, dist_b, dist_c, drifts)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "We see that `ADWIN` successfully indicates the presence of drift (red vertical lines) close to the beginning of a new data distribution.\n",
    "\n",
    "\n",
    "---\n",
    "We conclude this example with some remarks regarding concept drift detectors and their usage:\n",
    "\n",
    "- In practice, drift detectors provide stream learning methods with robustness against concept drift. Drift detectors monitor the model usually through a performance metric.\n",
    "- Drift detectors work on univariate data. This is why they are used to monitor a model's performance and not the data itself. Remember that concept drift is defined as a change in the relationship between data and the target to learn (in supervised learning).\n",
    "- Drift detectors define their expectations regarding input data. It is important to know these expectations to feed a given drift detector with the correct data.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.9.12 ('river')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  },
  "vscode": {
   "interpreter": {
    "hash": "b27b2a9f272874e098660428b28f5afa65c7850d82ff592660d49a141d883cd1"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
